package com.test.mp_generator.generater;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

public class elecbook_content {
    public static void main(String[] args) {
        // 使用 FastAutoGenerator 快速配置代码生成器
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/elec_content?serverTimezone=GMT%2B8", "root", "123456")
                .globalConfig(builder -> {
                    builder.author("Z-ken") // 设置作者
                            .disableOpenDir()  // 禁用自动打开文件夹
                            .commentDate("yyyy/MM/dd HH:mm:ss")
                            .enableSwagger() // swagger注解启动
                            .outputDir("src\\main\\java"); // 输出目录-从工件目录开始计算
                })
                .packageConfig(builder -> {
                    builder.parent("com.elecbook.content") // 设置父包名
                            .entity("model.po") // 设置实体类包名
                            .mapper("mapper") // 设置 Mapper 接口包名
                            .service("service") // 设置 Service 接口包名
                            .serviceImpl("service") // 设置 Service 实现类包名
                            .xml("mapper"); // 设置 Mapper XML 文件包名
                })
                .strategyConfig(builder -> {
                    builder.addInclude("contribute", "contributejudge", "comment", "commentjudge", "recommend", "user_like_contribute"
                            ) // 设置需要生成的表名

                            // entity
                            .entityBuilder()
                            .enableFileOverride() // 设置覆盖策略
                            .enableLombok() // 启用 Lombok
                            .enableTableFieldAnnotation() // 启用字段注解
//                            .logicDeleteColumnName("is_delete")
                            // controller
                            .controllerBuilder()
                            .enableRestStyle() // 启用 REST 风格
                            .serviceBuilder()
                            .enableFileOverride() // 设置覆盖策略
                            .formatServiceFileName("%sService");
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用 Freemarker 模板引擎
                .execute(); // 执行生成
    }
}
